Thực đơn
Ext4 Tính năng, đặc điểm^extent
, ^flex_bg
, ^huge_file
, ^uninit_bg
, ^dir_nlink
, và ^extra_isize
.[11]Phân bổ trước liên tụcext4 có thể phân bổ trước dung lượng trên đĩa cho một file. Để làm điều này trên hầu hết các hệ thống file, các số 0 sẽ được ghi vào file khi được tạo. ITrong ext4 (và một số hệ thống file khác ví dụ như XFS) fallocate()
, một lời gọi hệ thống mới trong nhân Linux, có thể được dùng. Không gian được phân bổ sẽ được đảm bảo và có khả năng tiếp giáp nhau. Tình huống này có các ứng dụng cho truyền phát trực tuyến và cơ sở dữ liệu.Phân bổ trễext4 sử dụng một kỹ thuật hiệu suất được gọi là allocate-on-flush, còn được gọi là phân bổ trễ Đó là, ext4 trì hoãn phân bổ block cho đến khi dữ liệu được ghi vào đĩa. Ngược lại, một số hệ thống file phân bổ các block ngay lập tức, ngay khi dữ liệu được đưa vào cache. Phân bổ trễ sẽ cải thiện hiệu suất và giảm phân mảnh bằng cách phân bổ hiệu quả lượng dữ liệu lớn hơn tại một thời điểm.Không giới hạn số lượng thu mục conExt4 không giới hạn số lượng thư mục con trong một thư mục, ngoại trừ bởi giới hạn kích thước vốn có của chính thư mục đó (trong ext3 một thư mục có tối đa 32000 thư mục con).[12] Để cho phép các thư mục lớn hơn và tiếp tục hoạt động, ext4 trong Linux 2.6.23 trở lên, kích hoạt mảng HTree (một phiên bản đặc biệt của B-tree) theo mặc định, cho phép các thư mục được lưu trữ trong khoảng 10-12 triệu mục trong mục lục 2-level HTree và và giới hạn kích thước thư mục 2GB cho kích thước block 4 KiB, tùy thuộc vào độ dài tên file. Trong Linux 4.12 trở lên tính năng largedir
kích hoạt một 3-level HTree và kích cỡ thư mục trên 2GB, cho phép khoảng 6 tỷ mục trong một thư mục.Kiểm tra nhật kýext4 dùng checksums trong nhật ký để cải thiện độ tin cậy, vì nhật ký là một trong những file được sử dụng nhiều nhất của đĩa. Tính năng này có một lợi ích phụ: nó có thể tránh sự chờ đợi I/O của đĩa trong quá trình ghi nhật ký, cải thiện hiệu suất một chút. Kiểm tra nhật ký được lấy cảm hứng từ một bài báo nghiên cứu từ University of Wisconsin, có tên là IRON File Systems[13] (cụ thể, phần 6, được gọi là "kiểm tra giao dịch"), với các sửa đổi trong việc thực hiện các giao dịch hỗn hợp được thực hiện bởi hệ thống file IRON (ban đầu được đề xuất bởi Sam Naghreezeh trong hội nghị thượng đỉnh RedHat).Kiểm tra siêu dữ liệuTừ Linux kernel 3.16.Faster file system checkingTrong ext4 các nhóm block và các phần của bảng chưa được phân bổ được đánh dấu. Việc này cho phép e2fsck bỏ qua chúng hoàn toàn và giảm đáng kể thời gian kiểm tra hệ thống file. Linux 2.6.24 triển khai tính năng này. Phụ thuộc thời gian fsck vào số lượng inode (ext3 so với ext4)Phân bổ đa blockKhi ext3 nối vào một file, nó gọi bộ cấp phát block, một lần cho mỗi block. Do đó, nếu có nhiều trình ghi đồng thời, các file có thể dễ dàng bị phân mảnh trên đĩa. Tuy nhiên, ext4 sử dụng phân bổ trễ cho phép nó lưu đệm dữ liệu và phân bổ các nhóm block. Do đó, bộ cấp phát đa block có thể đưa ra các lựa chọn tốt hơn về việc phân bổ các file liên tục trên đĩa. Bộ cấp phát đa block cũng có thể được sử dụng khi các file được mở ở chế độ O_DIRECT. Tính năng này không ảnh hưởng đến định dạng đĩa.Cải thiện dấu thời gianKhi máy tính trở nên nhanh hơn nói chung và khi Linux trở nên được sử dụng nhiều hơn cho các ứng dụng quan trọng, thì độ chi tiết của dấu thời gian dựa trên giây trở nên không đủ. Để giải quyết điều này, ext4 cung cấp dấu thời gian được đo bằng nano giây. Ngoài ra, 2 bit của trường dấu thời gian mở rộng được thêm vào các bit quan trọng nhất của trường giây của dấu thời gian để trì hoãn sự cố năm 2038 cho bổ sung 408 năm.ext4 cũng bổ sung hỗ trợ cho dấu thời gian tạo giờ. Nhưng, như Theodore Ts'o chỉ ra, trong khi thật dễ dàng để thêm một trường ngày tạo thêm vào trong inode (như vậy, về mặt kỹ thuật cho phép hỗ trợ cho các dấu thời gian trong ext4), nó là khó khăn hơn để sửa đổi hoặc bổ sung cần thiết lời gọi hệ thống, như stat() (có thể sẽ yêu cầu một phiên bản mới) và các thư viện khác nhau phụ thuộc vào chúng (như glibc). Những thay đổi này sẽ yêu cầu sự phối hợp của nhiều dự án.[14] Do đó, ngày tạo được lưu trữ bởi ext4 hiện chỉ khả dụng cho các chương trình người dùng trên Linux thông qua API statx()
.[15]Mã hóa trong suốtHỗ trợ mã hóa trong suốt đã được thêm vào Linux kernel 4.1 vào tháng 6 năm 2015.[16]
Thực đơn
Ext4 Tính năng, đặc điểmLiên quan
Tài liệu tham khảo
WikiPedia: Ext4 http://www.ext2fsd.com/ http://www.h-online.com/open/features/Kernel-Log-H... http://www.h-online.com/open/news/item/Android-2-3... http://www.ibm.com/developerworks/linux/library/l-... http://www.paragon-software.com/home/extfs-mac/ http://www.paragon-software.com/home/extfs-windows... http://www.soluvas.com/read-browse-explore-open-ex... http://www.ubuntugeek.com/how-to-read-ext3ext4-lin... http://www.cs.wisc.edu/wind/Publications/iron-sosp... http://ext2read.sourceforge.net/